/*
 * fondbizarre.h
 *
 *  Created on: 26 avr. 2011
 *      Author: benjamin
 */

#ifndef FONDBIZARRE_H_
#define FONDBIZARRE_H_

/*
    ALLEGRO C3

	1. Affichage, méthode double buffer
       Test avec des acteurs " entite " (rect, cercles, etc.)
*/
#include "constante.h"
#include <allegro.h>
#include <time.h>

#define ERREUR(msg){\
   set_gfx_mode(GFX_TEXT,0,0,0,0);\
   allegro_message("err %s\nligne %d\nfile %s\n",msg,__LINE__,__FILE__);\
   allegro_exit();\
   exit(EXIT_FAILURE);\
}

#define NB_MAX        150  // le nombre maximum d'entités dans le programme


// définition d'un acteur dans notre prg :  une entité du type "t_entite"
typedef struct entite{
   int type;         // type de l'entité : 0=rect, 1=cercle, 2=triangle
   int x,y;          // position horizontal et verticale
   int tx,ty;        // variables utilisées pour construire la forme de l'entité
   int px,py;        // pour déplacement de l'entité
   int color;        // couleur de l'entité
}t_entite;

// pour définir une suite de constantes par un texte
enum{ RECT, CERCLE, TRIANG, FIN}; // ici RECT vaut 0, CERCLE 1, TRIANG 2, FIN 3

// Les fonctions
// 1. initialisation
t_entite    init_entite          (void);
void        init_all_entite      (t_entite tab[]);

//2. mouvement
void        bouge_entite         (t_entite *e);
t_entite    bouge2_entite        (t_entite e); // version sans pointeur
void        bouge_all_entite     (t_entite tab[]);


//3. affichage
void        affiche_entite       (BITMAP *bmp, t_entite e);
void        affiche_all_entite   (BITMAP*bmp, t_entite tab[]);


#endif /* FONDBIZARRE_H_ */
